

/**
 * 表格视图 js
 */

Ext.namespace("oa.functions.table");

/**
 * 新增表单
 */
oa.functions.table.addForm = Ext.create('Ext.form.Panel', {
			width : 480,
			url : '../../function/addTree.do',
			frame : true,
			layout : 'anchor',
			defaults : {
				anchor : '100%'
			},
			defaultType : 'textfield',
			items : [{
						fieldLabel : '菜单名称',
						name : 'name',
						allowBlank : false
					}, {
						fieldLabel : '路径',
						name : 'url',
						allowBlank : false
					}, {
						xtype : 'hiddenfield',
						name : 'pid',
						value : '-1'
					}],
			buttons : [{
				text : '提交',
				formBind : true, // only enabled once the form is valid
				disabled : true,
				handler : function() {
					var p={};
					var form = this.up('form').getForm();
					if(oa.functions.table.addFlag==1){
						var m = oa.functions.tree.view.getSelectionModel()
								.getSelection();
						if (oa.functions.tree.view.getRootNode().childNodes.length == 0) {
							form.findField("pid").setValue(-1);
						} else {
							if (m && m[0]) {
								form.findField("pid").setValue(m[0].get('id'));
							} else {
								Ext.Msg.alert("提示", "请先选择菜单");
								oa.functions.table.addView.hide();
								return;
							}
						}
					}else{
						var selectdata = oa.functions.table.view.getSelectionModel().getSelection();
						p={id:selectdata[0].get("id")}
					}

					if (form.isValid()) {
						if(oa.functions.table.addFlag==2){
							//p={id:
						}
						form.submit({
									waitMsg : '正在提交...',
									params:p,
									success : function(form, action) {
										oa.functions.index.refresh();
										if(oa.functions.table.addFlag==2){
											Ext.Msg.alert('提示', "修改成功");
											oa.functions.table.addView
																.hide();
											return ;
										}
										Ext.MessageBox.confirm('提示',
												'保存成功，是否继续添加？', function(obj) {
													if (obj == "yes") {
														form.reset();
													} else {
														oa.functions.table.addView.hide();
													}
												});
									},
									failure : function(form, action) {
										Ext.Msg.alert('提示', action.result.msg);
									}
								});
					}
				}
			}, {
				text : '重置',
				handler : function() {
					this.up('form').getForm().reset();
				}
			}]
		})

/**
 * 新增视图
 */
oa.functions.table.addView = Ext.create('widget.window', {
			title : '新增菜单',
			closable : true,
			closeAction : 'hide',
			width : 500,
			minWidth : 150,
			height : 150,
			modal : true,
			plain : true,// 对窗口进行美化,可以看到整体的边框
			bodyStyle : 'padding: 5px;',
			items : [oa.functions.table.addForm]
		})

/**
 * 新增按钮事件
 */
oa.functions.table.add = function() {
	oa.functions.table.addFlag=1;
	oa.functions.table.addForm.getForm().reset();
	oa.functions.table.addView.show();
}

/**
 * 编辑按钮事件
 */
oa.functions.table.edit = function() {
	oa.functions.table.addFlag=2;
	var data = oa.functions.table.view.getSelectionModel().getSelection();
	if (data.length == 0 || data.length > 1) {
		Ext.Msg.alert("提示", "请选择一行数据");
		return;
	}
	oa.functions.table.addView.show();
	var id=data[0].get("id");
	oa.functions.table.addForm.getForm().load({
          waitMsg: '正在加载数据',
          waitTitle: '提 示',
          url: '../../function/loadFunction.do?id='+id,
          method: 'GET',
          success: function(form, action) {
              //Ext.Msg.alert('提 示', '加载成功');
          }
     })
}

/**
 * 删除按钮事件
 */
oa.functions.table.del = function() {
	var data = oa.functions.table.view.getSelectionModel().getSelection();
	// alert(data);
	if (data.length == 0) {
		Ext.Msg.alert("提示", "请选择要操作的行");
		return;
	} else {
		Ext.Msg.confirm("请确认", "是否真的要删除数据？", function(button, text) {
					if (button == "yes") {
						var ids = [];
						Ext.Array.each(data, function(record) {
									var id = record.get('id');
									ids.push(id);

								});
						Ext.Ajax.request({
									url : '../../function/deleteTree.do',
									params : {
										idx : ids.join(',')
									},
									waitMsg : '正在删除...',
									method : 'POST',
									// timeout : 2000,//默认30秒
									success : function(response, opts) {
										Ext.Msg.alert("提示", "删除成功");
										oa.functions.index.refresh();
									}
								})
					}
				})
	}
}

Ext.define('oa.functions.table.model', {
			extend : 'Ext.data.Model',
			fields : [{
						name : 'id'
					}, {
						name : 'name'
					}, {
						name : 'url'
					}]
		})
// 创建数据源
oa.functions.table.store = Ext.create('Ext.data.Store', {
			model : 'oa.functions.table.model',
			// 设置分页大小
			pageSize : 20,
			proxy : {
				type : 'ajax',
				url : '../../function/loadTable.do',
				reader : {
					// 数据格式为json
					type : 'json',
					root : 'list',
					// 获取数据总数
					totalProperty : 'totalCount'
				}
			},
			autoLoad : true
		});

// 创建grid
oa.functions.table.selectModel = Ext.create('Ext.selection.CheckboxModel');
oa.functions.table.view = Ext.create('Ext.grid.Panel', {
			store : oa.functions.table.store,
			selModel : oa.functions.table.selectModel,
			columns : [{
						text : 'ID',
						width : 120,
						dataIndex : 'id',
						sortable : true
					}, {
						text : '菜单名称',
						width : 220,
						dataIndex : 'name',
						sortable : true
					}, {
						text : '访问地址',
						flex : 1.5,
						dataIndex : 'url',
						sortable : true
					}],
			title : '列表',
			region : "center",
			split : true,
			width : "70%",
			collapsible : true,
			columnLines : true,
			// 分页功能
			bbar : Ext.create('Ext.PagingToolbar', {
						store : oa.functions.table.store,
						displayInfo : true,
						displayMsg : '显示 {0} - {1} 条，共计 {2} 条',
						emptyMsg : "没有数据"
					}),
			tbar : [{
						text : "新增",
						iconCls : 'Add',
						listeners : {
							"click" : oa.functions.table.add
						}
					}, {
						text : "修改",
						iconCls : 'Applicationedit',
						listeners : {
							"click" : oa.functions.table.edit
						}
					}, {
						text : "删除",
						iconCls : 'Delete',
						listeners : {
							"click" : oa.functions.table.del
						}
					}]
		})
